package com.songlanyun.modules.signin.dao;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.songlanyun.modules.signin.entity.SignInRecordEntity;
import com.songlanyun.modules.signin.model.dto.SignInRecordPageReq;
import com.songlanyun.modules.signin.model.vo.SignInRecordVo;

/**
 * 签到管理-签到记录
 *
 * @author lijiahe
 * @date 2022-08-03
 */
@Mapper
public interface SignInRecordDao extends BaseMapper<SignInRecordEntity> {

    /**
     * 签到记录（分页）
     *
     * @param page
     * @param paramsMapToReq
     * @return
     */
    IPage<SignInRecordVo> querySignInRecordPage(IPage<SignInRecordVo> page,
                                                @Param("req") SignInRecordPageReq paramsMapToReq);

    /**
     * 查询签到数
     *
     * @param userId
     *            用户id（必传）
     * @param month
     *            月份（不传统计所有）
     * @param isInquireCoupon
     *            是否查询含有优惠券的签到 (0查询,不传则不查询）
     * @return
     */
    Integer selectSignInNum(@Param("userId") Long userId, @Param("month") String month,
                            @Param("isInquireCoupon") Integer isInquireCoupon);

    /**
     * 统计累计爱心值
     *
     * @param userId
     * @param month
     * @return
     */
    Integer selectCumulativeLoveValue(@Param("userId") Long userId, @Param("month") String month);

    /**
     * 月度签到明显列表
     *
     * @param userId
     * @param month
     * @return
     */
    List<String> selectListSignInRecord(@Param("userId") Long userId, @Param("month") String month);
}
